なんでも Form Object になってしまう
よく Fat Model の解消の手段として、Service や Interactor や Form Object を適切に使いましょうという話がある。
同時に、Service を作ると苦しいので(人によって指針がぶれたり)それはやめましょうという話もあるが、
自分には別の悩み(というほどでもないが)として「なんでも Form Object になってしまう」問題があると思う。
たとえば、サインアップの処理が太ってきた。コントローラーに書くのは嫌なので Service に切り出そうとなる。
そこで SignupService を作ろうとするが、書いてるうちに「やっぱ validation 欲しいな」とか「callback いるのでは…」という気持ちになってくる。
そうすると include ActiveModel::Model が発生し、「これって実は Form Object なのでは?」となってくる( ActiveModel を include した PORO = Form Object と定義して良いならだが )。
サインアップは SignupForm だし、キャッシュパージは Item::CachePurgeForm だし、いいねは CreateLikeForm になる。form_with なんて一切使ってない箇所でも、任意の更新系クラスは 〇〇Form になっていく。別に困ってないんだけど、こういう話なんだっけ?